23

» WarCraft 3 / Вопрос по инициализации

Похожие вопросы:

ответ
Эти названия задаются в файле UI\WorldEditStrings. Достаточно один раз перевести там - и в редакторе это будет работать на всех картах.
прошу не накидываться с агрессией и криками "Лицензию не завезли?"
Лицензию не завезли? Подумай, чисто из уважения к близзам нужно иметь лицензию.
Ниже прикреплён WorldEditStrings из версии 1.26а.
ответ
Лимит операций, обычно это беда настигает заядлых гуишников.
На jass обычно нету таких проблем.
Создайте таймер с периодом .00 сек и запускайте им функции инициализации триггеров.
функция типа InitTrig_Имя триггера - это функция инициализации триггера, она вызывается из функции InitCustomTriggers, но если этих вызовов очень много то функция упирается в лимит операций и поток завершается так и не создав все триггеры.
ответ
в самой последней строке самой последней функции присваивай какое-то значение глобалке и будет тебе счастье знать, что всё закончилось успешно
ответ
эта статья к тебе не относится
она совсем про другое
тебе не нужны ни буферы ни файлы
по поводу 1 и 2 пунктов
а ты попробуй
а потом напиши тут о том что получилось
ответ
Если запускаемая сложность главы отличается от стандартной, то оставить так, как есть, а если нет - то попытаться считать то, что было записано в предыдущей главе (если не записано - сбросить к стандартной).
Вообще, сама функция не запускает уровень с какой-то сложностью. Она просто задает значение глобальной переменной:
Код функции
function SetNextLevelBJ takes string nextLevel returns nothing
    if (nextLevel == "") then
        set bj_changeLevelMapName = null
    else
        set bj_changeLevelMapName = nextLevel
    endif
endfunction
Если копать глубже, то вся проблема здесь:
Код функций
function CustomVictoryOkBJ takes nothing returns nothing
    if bj_isSinglePlayer then
        call PauseGame( false )
        // Bump the difficulty back up to the default.
        call SetGameDifficulty(GetDefaultDifficulty())
    endif

    if (bj_changeLevelMapName == null) then
        call EndGame( bj_changeLevelShowScores )
    else
        call ChangeLevel( bj_changeLevelMapName, bj_changeLevelShowScores )
    endif
endfunction

function CustomVictoryQuitBJ takes nothing returns nothing
    if bj_isSinglePlayer then
        call PauseGame( false )
        // Bump the difficulty back up to the default.
        call SetGameDifficulty(GetDefaultDifficulty())
    endif

    call EndGame( bj_changeLevelShowScores )
endfunction
Если интересно, откуда все это берется, то нужно посмотреть устройство функции CustomVictoryBJ и все вызовы, следующие из нее.
Чтобы править проблему без создания костылей на кэше, то придется переписать близовскую функцию под себя (без сбрасывания сложности), а потом использовать ее вместо оригинальной в своей кампании (удобства ради можно использовать дефайн на cJass).

23

» WarCraft 3 / Рельеф

Похожие вопросы:

ответ
Нужно отредактировать файл MiscData, чтобы создавать более крутые склоны (тогда зависимость высоты от размера кисти уменьшится).
А именно строку "MaxSlope=50" на "MaxSlope=90".
ответ
Haikyo:
Absolute, у меня базовая горка ограничена в высоте, и плато, соответственно, получается низким, чтобы сделать горку выше приходится вокруг нее тоже поднимать уровень, в итоге получается что-то вроде пирамиды. Иначе говоря, дела обстоят в точности как с клифами.
8gabriel8, не думаю, что зависит от этого, с помощью плато пытался сделать похожий склон на карте снарта, не вышло, как будто его склон просто делался другим инструментом.
Obelick, экспортировал MiscData, отредактировал Slope и MaxHeight, импортировал в карту с соответствующим путем, рельеф все также упирается в предел.
Absolute, почему-то никак не получается сделать как у тебя на скриншоте :c
Подними горку, за тем сделай с помощью плато не саму горку, а все что вокруг нее. Это в том случае если тебе нужно уменьшить ее размеры и при этом сделать под углом близким к 90 градусам.
Ну то есть води с помощью плато по земле вокруг нее, пока она не уменьшится до нужных размеров.
ответ
ну какбэ над редактором объектов "дополнительно" -> "изменить типа ландшафта". Там же галочкой можно нестандартный тайлсет набрать

23

» WarCraft 3 / Эмпатия по области

Похожие вопросы:

ответ
Steal nerves:
вот
раскрыть
852000 (skillmenu): Приказ (без указания цели), при выполнении которого открывается меню навыков героев. Если же триггерно заставить выполнить этот приказ обычную боевую единицу, то исчезнет ее карта команд, которая возвратится, если выбрать боевую единицу.
851994 (buildmenu): Приказ (без указания цели), открывающий меню строительства воина, способного возводить здания.
Но эти приказы 852000 и 851994 не ловятся при нажатии, эти приказы нужно чтобы отдать боевой единице открыть меню скилов или строительства, а вот отловить не получится.
ответ
Число зависит от слота инвентаря, в котором лежит использованный предмет
Кстати не знаю как у других, а у меня оглушенный юнит игнорирует приказы и триггер их не ловит
ответ
Юзает первый скилл, потом второй. Ну у меня так было) Закрывай тему ибо ответили
ответ
Интересно зачем? Вы в курсе что это номер по которому движок ищит в списке что ему делать а еше куда рисовать кулдаун и прочее? Есть ограниченное число приказов и вся нужны, изменять ид приказа абилкам - бесполезно, исключение канал и поставка ресурсов - там есть отдельный обработчик, который смотрит что база канал а после уже идет все остальное. Каналу id приказа меняем из соображения кулдауна на панели приказа, остальное, другое применение у id приказа нет.
ответ
Делаешь отлов ивентов или ищешь тут:
УКРАЛ ИЗ ИНТЕРНЕТА (id приказов)
library ORDER
globals
    //strange ones at bottom
    public constant integer OFFSET=851970
    
    public constant integer absorb=852529
    public constant integer acidbomb=852662
    public constant integer acolyteharvest=852185
    public constant integer AImove=851988
    public constant integer ambush=852131
    public constant integer ancestralspirit=852490
    public constant integer ancestralspirittarget=852491
    public constant integer animatedead=852217
    public constant integer antimagicshell=852186
    public constant integer attack=851983
    public constant integer attackground=851984
    public constant integer attackonce=851985
    public constant integer attributemodskill=852576
    public constant integer auraunholy=852215
    public constant integer auravampiric=852216
    public constant integer autodispel=852132
    public constant integer autodispeloff=852134
    public constant integer autodispelon=852133
    public constant integer autoentangle=852505
    public constant integer autoentangleinstant=852506
    public constant integer autoharvestgold=852021
    public constant integer autoharvestlumber=852022
    public constant integer avatar=852086
    public constant integer avengerform=852531
    public constant integer awaken=852466
    public constant integer banish=852486
    public constant integer barkskin=852135
    public constant integer barkskinoff=852137
    public constant integer barkskinon=852136
    public constant integer battleroar=852099
    public constant integer battlestations=852099
    public constant integer bearform=852138
    public constant integer berserk=852100
    public constant integer blackarrow=852577
    public constant integer blackarrowoff=852579
    public constant integer blackarrowon=852578
    public constant integer blight=852187
    public constant integer blink=852525
    public constant integer blizzard=852089
    public constant integer bloodlust=852101
    public constant integer bloodlustoff=852103
    public constant integer bloodluston=852102
    public constant integer board=852043
    public constant integer breathoffire=852580
    public constant integer breathoffrost=852560
    public constant integer build=851994
    public constant integer burrow=852533
    public constant integer cannibalize=852188
    public constant integer carrionscarabs=852551
    public constant integer carrionscarabsinstant=852554
    public constant integer carrionscarabsoff=852553
    public constant integer carrionscarabson=852552
    public constant integer carrionswarm=852218
    public constant integer chainlightning=852119
    public constant integer channel=852600
    public constant integer charm=852581
    public constant integer chemicalrage=852663
    public constant integer cloudoffog=852473
    public constant integer clusterrockets=852652
    public constant integer coldarrows=852244
    public constant integer coldarrowstarg=852243
    public constant integer controlmagic=852474
    public constant integer corporealform=852493
    public constant integer corrosivebreath=852140
    public constant integer coupleinstant=852508
    public constant integer coupletarget=852507
    public constant integer creepanimatedead=852246
    public constant integer creepdevour=852247
    public constant integer creepheal=852248
    public constant integer creephealoff=852250
    public constant integer creephealon=852249
    public constant integer creepthunderbolt=852252
    public constant integer creepthunderclap=852253
    public constant integer cripple=852189
    public constant integer curse=852190
    public constant integer curseoff=852192
    public constant integer curseon=852191
    public constant integer cyclone=852144
    public constant integer darkconversion=852228
    public constant integer darkportal=852229
    public constant integer darkritual=852219
    public constant integer darksummoning=852220
    public constant integer deathanddecay=852221
    public constant integer deathcoil=852222
    public constant integer deathpact=852223
    public constant integer decouple=852509
    public constant integer defend=852055
    public constant integer detectaoe=852015
    public constant integer detonate=852145
    public constant integer devour=852104
    public constant integer devourmagic=852536
    public constant integer disassociate=852240
    public constant integer disenchant=852495
    public constant integer dismount=852470
    public constant integer dispel=852057
    public constant integer divineshield=852090
    public constant integer doom=852583
    public constant integer drain=852487
    public constant integer dreadlordinferno=852224
    public constant integer dropitem=852001
    public constant integer drunkenhaze=852585
    public constant integer earthquake=852121
    public constant integer eattree=852146
    public constant integer elementalfury=852586
    public constant integer ensnare=852106
    public constant integer ensnareoff=852108
    public constant integer ensnareon=852107
    public constant integer entangle=852147
    public constant integer entangleinstant=852148
    public constant integer entanglingroots=852171
    public constant integer etherealform=852496
    public constant integer evileye=852105
    public constant integer faeriefire=852149
    public constant integer faeriefireoff=852151
    public constant integer faeriefireon=852150
    public constant integer fanofknives=852526
    public constant integer farsight=852122
    public constant integer fingerofdeath=852230
    public constant integer firebolt=852231
    public constant integer flamestrike=852488
    public constant integer flamingarrows=852174
    public constant integer flamingarrowstarg=852173
    public constant integer flamingattack=852540
    public constant integer flamingattacktarg=852539
    public constant integer flare=852060
    public constant integer forceboard=852044
    public constant integer forceofnature=852176
    public constant integer forkedlightning=852586
    public constant integer freezingbreath=852195
    public constant integer frenzy=852561
    public constant integer frenzyoff=852563
    public constant integer frenzyon=852562
    public constant integer frostarmor=852225
    public constant integer frostarmoroff=852459
    public constant integer frostarmoron=852458
    public constant integer frostnova=852226
    public constant integer getitem=851981
    public constant integer gold2lumber=852233
    public constant integer grabtree=852511
    public constant integer harvest=852018
    public constant integer heal=852063
    public constant integer healingspray=852664
    public constant integer healingward=852109
    public constant integer healingwave=852501
    public constant integer healoff=852065
    public constant integer healon=852064
    public constant integer hex=852502
    public constant integer holdposition=851993
    public constant integer holybolt=852092
    public constant integer howlofterror=852588
    public constant integer humanbuild=851995
    public constant integer immolation=852177
    public constant integer impale=852555
    public constant integer incineratearrow=852670
    public constant integer incineratearrowoff=852672
    public constant integer incineratearrowon=852671
    public constant integer inferno=852232
    public constant integer innerfire=852066
    public constant integer innerfireoff=852068
    public constant integer innerfireon=852067
    public constant integer instant=852200
    public constant integer invisibility=852069
    public constant integer lavamonster=852667
    public constant integer lightningshield=852110
    public constant integer load=852046
    public constant integer loadarcher = 852142
    public constant integer loadcorpse=852050
    public constant integer loadcorpseinstant=852053
    public constant integer locustswarm=852556
    public constant integer lumber2gold=852234
    public constant integer magicdefense=852478
    public constant integer magicleash=852480
    public constant integer magicundefense=852479
    public constant integer manaburn=852179
    public constant integer manaflareoff=852513
    public constant integer manaflareon=852512
    public constant integer manashieldoff=852590
    public constant integer manashieldon=852589
    public constant integer massteleport=852093
    public constant integer mechanicalcritter=852564
    public constant integer metamorphosis=852180
    public constant integer militia=852072
    public constant integer militiaconvert=852071
    public constant integer militiaoff=852073
    public constant integer militiaunconvert=852651
    public constant integer mindrot=852565
    public constant integer mirrorimage=852123
    public constant integer monsoon=852591
    public constant integer mount=852469
    public constant integer mounthippogryph=852143
    public constant integer move=851986
    public constant integer nagabuild=852467
    public constant integer neutraldetectaoe=852023
    public constant integer neutralinteract=852566
    public constant integer neutralspell=852630
    public constant integer nightelfbuild=851997
    public constant integer orcbuild=851996
    public constant integer parasite=852601
    public constant integer parasiteoff=852603
    public constant integer parasiteon=852602
    public constant integer patrol=851990
    public constant integer phaseshift=852514
    public constant integer phaseshiftinstant=852517
    public constant integer phaseshiftoff=852516
    public constant integer phaseshifton=852515
    public constant integer phoenixfire=852481
    public constant integer phoenixmorph=852482
    public constant integer poisonarrows=852255
    public constant integer poisonarrowstarg=852254
    public constant integer polymorph=852074
    public constant integer possession=852196
    public constant integer preservation=852568
    public constant integer purge=852111
    public constant integer rainofchaos=852237
    public constant integer rainoffire=852238
    public constant integer raisedead=852197
    public constant integer raisedeadoff=852199
    public constant integer raisedeadon=852198
    public constant integer ravenform=852155
    public constant integer recharge=852157
    public constant integer rechargeoff=852159
    public constant integer rechargeon=852158
    public constant integer rejuvination=852160
    public constant integer renew=852161
    public constant integer renewoff=852163
    public constant integer renewon=852162
    public constant integer repair=852024
    public constant integer repairoff=852026
    public constant integer repairon=852025
    public constant integer replenish=852542
    public constant integer replenishlife=852545
    public constant integer replenishlifeoff=852547
    public constant integer replenishlifeon=852546
    public constant integer replenishmana=852548
    public constant integer replenishmanaoff=852550
    public constant integer replenishmanaon=852549
    public constant integer replenishoff=852544
    public constant integer replenishon=852543
    public constant integer request_hero=852239
    public constant integer requestsacrifice=852201
    public constant integer restoration=852202
    public constant integer restorationoff=852204
    public constant integer restorationon=852203
    public constant integer resumebuild=851999
    public constant integer resumeharvesting=852017
    public constant integer resurrection=852094
    public constant integer returnresources=852020
    public constant integer revenge=852241
    public constant integer revive=852039
    public constant integer roar=852164
    public constant integer robogoblin=852656
    public constant integer root=852165
    public constant integer sacrifice=852205
    public constant integer sanctuary=852569
    public constant integer scout=852181
    public constant integer selfdestruct=852040
    public constant integer selfdestructoff=852042
    public constant integer selfdestructon=852041
    public constant integer sentinel=852182
    public constant integer setrally=851980
    public constant integer shadowsight=852570
    public constant integer shadowstrike=852527
    public constant integer shockwave=852125
    public constant integer silence=852592
    public constant integer sleep=852227
    public constant integer slow=852075
    public constant integer slowoff=852077
    public constant integer slowon=852076
    public constant integer smart=851971
    public constant integer soulburn=852668
    public constant integer soulpreservation=852242
    public constant integer spellshield=852571
    public constant integer spellshieldaoe=852572
    public constant integer spellsteal=852483
    public constant integer spellstealoff=852485
    public constant integer spellstealon=852484
    public constant integer spies=852235
    public constant integer spiritlink=852499
    public constant integer spiritofvengeance=852528
    public constant integer spirittroll=852573
    public constant integer spiritwolf=852126
    public constant integer stampede=852593
    public constant integer standdown=852113
    public constant integer starfall=852183
    public constant integer stasistrap=852114
    public constant integer steal=852574
    public constant integer stomp=852127
    public constant integer stoneform=852206
    public constant integer stop=851972
    public constant integer submerge=852604
    public constant integer summonfactory=852658
    public constant integer summongrizzly=852594
    public constant integer summonphoenix=852489
    public constant integer summonquillbeast=852595
    public constant integer summonwareagle=852596
    public constant integer tankdroppilot=852079
    public constant integer tankloadpilot=852080
    public constant integer tankpilot=852081
    public constant integer taunt=852520
    public constant integer thunderbolt=852095
    public constant integer thunderclap=852096
    public constant integer tornado=852597
    public constant integer townbelloff=852083
    public constant integer townbellon=852082
    public constant integer tranquility=852184
    public constant integer transmute=852665
    public constant integer unavatar=852087
    public constant integer unavengerform=852532
    public constant integer unbearform=852139
    public constant integer unburrow=852534
    public constant integer uncoldarrows=852245
    public constant integer uncorporealform=852494
    public constant integer undeadbuild=851998
    public constant integer undefend=852056
    public constant integer undivineshield=852091
    public constant integer unetherealform=852497
    public constant integer unflamingarrows=852175
    public constant integer unflamingattack=852541
    public constant integer unholyfrenzy=852209
    public constant integer unimmolation=852178
    public constant integer unload=852047
    public constant integer unloadall=852048
    public constant integer unloadallcorpses=852054
    public constant integer unloadallinstant=852049
    public constant integer unpoisonarrows=852256
    public constant integer unravenform=852156
    public constant integer unrobogoblin=852657
    public constant integer unroot=852166
    public constant integer unstableconcoction=852500
    public constant integer unstoneform=852207
    public constant integer unsubmerge=852605
    public constant integer unsummon=852210
    public constant integer unwindwalk=852130
    public constant integer vengeance=852521
    public constant integer vengeanceinstant=852524
    public constant integer vengeanceoff=852523
    public constant integer vengeanceon=852522
    public constant integer volcano=852669
    public constant integer voodoo=852503
    public constant integer ward=852504
    public constant integer waterelemental=852097
    public constant integer wateryminion=852598
    public constant integer web=852211
    public constant integer weboff=852213
    public constant integer webon=852212
    public constant integer whirlwind=852128
    public constant integer windwalk=852129
    public constant integer wispharvest=852214
    
    public constant integer scrollofspeed=852285
    public constant integer cancel=851976
    public constant integer moveslot1=852002
    public constant integer moveslot2=852003
    public constant integer moveslot3=852004
    public constant integer moveslot4=852005
    public constant integer moveslot5=852006
    public constant integer moveslot6=852007
    public constant integer useslot1=852008
    public constant integer useslot2=852009
    public constant integer useslot3=852010
    public constant integer useslot4=852011
    public constant integer useslot5=852012
    public constant integer useslot6=852013
    public constant integer skillmenu=852000
    public constant integer stunned=851973

    public constant integer instant1=851991      //?
    public constant integer instant2=851987      //?
    public constant integer instant3=851975      //?
    public constant integer instant4=852019      //?
endglobals
endlibrary

23

» WarCraft 3 / Помогите найти карту пожалуйста.

Похожие вопросы:

ответ
Claw, SomeFire, Timoxxx, а теперь фокус
у него были гет локал плеер
я их убрал
но он карту после этого не тестил
говорит потестит после нового года
ответ
проект Mental World сокрыт от взыскующих глаз по инициативе автора (наверное, точно не помню)
автор — xgm.guru/user/Tiodor
ответ
Да, это Starcraft hybrids, если скриншоты похожи на какой-либо фрагмент из этого видео.
ответ
закрыт по таймауту

23

» WarCraft 3 / Проблема с отображением текстуры на модели

Похожие вопросы:

ответ
Свершылось... Заработало...
Вот оно.

Описание проверки:
  • проверил в редакторе, он просто вылетает при попытке настройки в РО;
  • переконвертировал в .mdl и осмотрел, все норм;
  • открыл в War3ModelEditore, удалил лишние текстуры, материалы, настроил анимации геосетов;
  • профит.
Если кто не верит, вот скрин.

23

» WarCraft 3 / Защита мапы

Похожие вопросы:

ответ
видео гайда нету но есть текстовый
вот по пунктам
  1. заюзать прогу "депротектор" на карте (депротектор можно найти на этом сайте или в гугле)
  2. с помощью mpq архиватора вытащить из карты файл war3map.j (mpq архиватор можно найти на этом сайте или в гугле)
  3. найти и удалить условие проверки одиночная игра или нет (в каждой карте проверка сделана по своему так что без мозга и знаний jass нифига не выйдет)
  4. запихнуть файл war3map.j обратно в карту с помощью mpq архиватора
  5. ????
  6. PROFIT
ответ
Ладно обобщу все что тут сказано было:
Защитить можно, но чем сильнее защита, тем сложнее её писать.
Убить заголовок MPQ v2 можно, что не даст возможности некоторым ботам прочитать карту, но есть новый Storm, которому по зубам эта уловка.
От бота передать какие-то уникальные данные можно (хоть HCL, хоть от fakeplayer'a в чат написать), но есть 2 минуса:
  1. Защиту можно обойти просто изменив j файл
  2. Прослушка трафика и подгон бота под карту.
Способ prog (xgm.guru/p/wc3/212625?postid=392839#comment25), конечно, обеспечит должную защиту, но насколько тогда секретна карта, чтобы такое ставить?

23

» WarCraft 3 / Получение урона

Похожие вопросы:

ответ
Урон настраивается через уровень способности, или как было сказано unit - damage target
команда для использования нестандартной способности берется от той способности, на основе которой ты её сделал, и если это цепь тралла - Unit - issue order with targetign a unit - orc - chain lighting
ответ
здесь есть
Карта damage detect
ответ
Yonsen, вейт это баганая херня которая не должна юзаться в подобных случаях
кроме того не забывай что враг может отбежать и тогда урон будет нанесён раньше чем долетит снаряд
данный спелл можно сделать 2 способами
  1. юзаем систему снарядов и канал (необходим школьный курс геометрии и статьи про движение)
  2. через отлов урона и даммик (герой кастует канал на врага - создаётся дамми юнит - дамми юнит кастует спелл на врага; срабатывает событие юнит получил урон, условие: тип юнита (источник урона) равен типу дамми юнита, действие: удаляем юнита источник урона и проверяем баффы, наносим доп урон и т.д. )
quq_CCCP, не самая лучшая реализация (куча триггеров и прочее)
ответ
Как вариант, можно найти в системе действия, в которых триггерно наносится урон юниту (потеря жизней), и отлавливать уже оттуда.
ответ
Характеристики - может бежать - убрать галочку

23

» WarCraft 3 / Рандомные герои

Похожие вопросы:

ответ
есть статья на эту тему
так что клоз
ответ
ssbbssc, WarSC, оба офнитесь
фигню несёте
судя по тому что написал афтар ему нужен чит позволяющий ему строить любого героя
но триггеров он не знает
поэтому сначала читаем статьи
потом делаем триггер
событие - игрок вводит текст -cheat
действие - создать триггерному игроку строителя способного строить особый алтарь
простейший триггер
ответ
Что там за ужасные условия?
Короче. Можешь сделать вот так вота:
Исходные данные- массив героев.
1 способ- создаешь массив, размер которого = размеру массива героев и заполняешь его линейным методом. То есть с помощью рандома выбираешь первое число. И потом с помощью последовательности i+(k*q), где i- изначальная ячейка; k- попытка: q- шаг.
2 способ- также создаешь массив, но заполняешь его вот так: рандомом выбираешь героя. Проверяешь, имеется ли уже такой в новом массиве. Если да- перевыбираешь, если нет- вставляешь и переходишь к следующей ячейки
Таким образом каждую игру будет генерироваться твой массив случайным образом. Заводишь переменную s, считающую сколько героев уже вытащили, и создаешь героя из твоего нового сформированного массива под номером s
Проще сказать: формируй каждую игру новый массив и вытаскивай по одному герою из него каждый раз, когда требуется
ответ
Потому что при стандартном получении опыта вмешиваются игровые константы и формулы по которым они работают, либо своя система это тогда смотри 3 вопрос от бота, либо настраивай игровые константы как тебе надо, это все описано в базовой статье по редактору, раздел формулы WE.

23

» WarCraft 3 / Копии объектов в JASS

Похожие вопросы:

ответ
S2I принимает строку в качестве параметра и никак её не изменяет
с чего вдруг он должен создавать новые строки?
I2S создаёт временную строку
если в таблице есть строка равная временной по хэшу то он возвращает строку из таблицы
если в таблице строки нету то он добавляет нашу временную строку в таблицу
т.е. обычный алгоритм хэширования

23

» WarCraft 3 / Вариации в декорации

Похожие вопросы:

ответ
Я только свои вместо стандарток делал все работало. Так что как вариант)
ответ
Объясню на примере AshenRocks (камни Ашенваля):
Папка с моделями: Doodads\Ashenvale\Rocks\AshenRock\
То, что в "Файл модели": Doodads\Ashenvale\Rocks\AshenRock\AshenRock
Пути моделей:
  • Doodads\Ashenvale\Rocks\AshenRock\AshenRock0.mdx
  • Doodads\Ashenvale\Rocks\AshenRock\AshenRock1.mdx
и так до
  • Doodads\Ashenvale\Rocks\AshenRock\AshenRock9.mdx
В поле вариации ставим 10, так как всего у нас 10 моделей.
Пробуй, думаю, что заработает.
ответ
Вариации работают так: в адресе файла модели декорации указывается типа [MyModel].mdx, но этого файла на самом деле нет, а есть только файлы вариации типа [MyModel]0.mdx, [MyModel]1.mdx, [MyModel]2.mdx и т. п.
ответ
~8gabriel8:
У декораций для вариаций есть несколько моделей с тем же именем и припиской: ...00, ...01, ...02... А в Редакторе объектов для модели указывается только имя без приписки. У башен же есть несколько вариаций анимации Stand, которые идут для Смотровой башни, Осадной башни, Стрелковой башни и Магической, странно, что у тебя отображает лишь Смотровую и Осадную. Запамятовал, можно ли триггером выставлять декорациям теги анимации, но если да, то добавляй тег Смотровой башни. Другой вариант - сделать в Редакторе объектов Боевую единицу Башню со способностью Москиты, чтобы она была невыбираема. Способность эту можно поставить через JNGP или выбрав строку со способностями, нажав Shift+Enter, напечатать Aloc.

23

» WarCraft 3 / id способности

Похожие вопросы:

ответ
wupse, второй спелбук
ответ
Простым способом, нет не получится...
С триггерами можно
ответ
Базовый ид приказа указан для галочки в ро, его изменить можно только у канала да поставки ресурсов, у прочих способностей он не меняется. По этому ид движок узнает какой взять метод для обработки скилла, по нему рисуется на иконках кулдаун индикатор и так далее. Изменить механику дефолтных способностей нельзя.
ответ
Прочитал в другой теме, что это и правда нереально, стандартный ИИ не знает канал.

23

» WarCraft 3 / У меня есть 2 вопроса.

Похожие вопросы:

ответ
юнит получает урон
1 ответ на 2 вопроса
ответ
  1. в 1 вопросе может быть лишь 1 вопрос
  2. если для юнита то просто меняй размер юнита в ро иначе смотри пункт 2
  3. раздел 4
  4. уже ответили иначе смотри пункт 2
ответ
кхе, всё вроде можно, но объяснять долго, третье простое, просто при юзании способности в триггерах добавь условие сравнения, если юнит цель применяемой способности нежить, тогда действие о дополнительном уроне, например если способность наносит 100, то 20% это 20,в действии приказать применяющий юнит нанести урон юнит цель применяемой способности 100+(0.20х100), перед этим 100 можно установить, как переменную, например если с каждым уровнем урон растёт на 100, то переменная int=100хУровень способности способность у применяющий юнит.
Сложно объяснил?
ответ
Можно через "or":
exitwhen ( a == b ) or ( j > i )
ответ
При нажатии удара грома
Используйте Get\SetUnitUserData для героя, он должен иметь собственную привязку структуры.
Так-же должна быть структура дамика, в которой будет таймер с шагами относительно времени на 1 сек 25 шагов, с долей в 0,04 сек за 1 шаг.
Структура дамика должна быть сохранена в UnitUserData дамми юнитов.
Вычислит середину времени к пример 5 сек тамера, где его середина является 2,5 ~ (62 шаг приблизительно )
Если тек. шаг == 62 то
Создать Даммик(Пехотинец)
СтруктураГероя->Пехотинец=ЮнитПехотинца
КонецЕсли
Если время пребывания пехотинца оконченное, или он по непоняткам смотал ранее, то очищаем в структуре геря его.
При нажатии на гром. поступь:
Проверяем наличие пехотинца в геройской структуре..
Есть Пехотинец? Да => Создаём Варлока, Нет => Не создаём (Ну, и занести варлока в переменную структуры героя с именем варлока, если не надо плодить другого варлока, также с пехотинцем)
Надеюсь, что я понятно изъяснил.

23

» WarCraft 3 / Как выбрать в триггере всех игроков?

Похожие вопросы:

ответ
реализуй эту функцию сам
создай переменную типа int и перебери всех юнитов игрока на карте
и для каждого из них увеличивай int на 1
в результате значение int будет равно количеству юнитов на карте
ответ
Что за чушь ты тут описал? Просто когда спасатели прилетают, паузи таймер, а при перезапуске игры, запускай его по новой(с тем же ожиданием)
Кстати, идея норм. Можешь скинуть? А то я не удержусь, и стырю её у тебя :D
ответ
Astra:
Скорее всего в триггере стоит локальный игрок красного цвета. Скрин в студию
Во время инициализации карты в стартовой позиции игрока создается 1 висп.
Заменил триггер на другой, все заработало.
molot39:
Может проще будет после постройки здания сделать reset animation - на trigger unit
Увы, не работает.
Одним словом, я просто взял модель виспа, удалил у него все анимации, кроме stand, импортировал в карту, прописав путь к файлу, как к файлу модели оригинального виспа.
ответ
вот стандартный набор функций мили игры в триггере инициализации:
    call MeleeStartingVisibility(  )
    call MeleeStartingHeroLimit(  )
    call MeleeGrantHeroItems(  )
    call MeleeStartingResources(  )
    call MeleeClearExcessUnits(  )
    call MeleeStartingUnits(  )
    call MeleeStartingAI(  )
    call MeleeInitVictoryDefeat(  )
По названиям функций думаю понятно что они делают, рассмотрим по подробнее MeleeInitVictoryDefea( )
function MeleeInitVictoryDefeat takes nothing returns nothing
    local trigger    trig
    local integer    index
    local player     indexPlayer

    // Create a timer window for the "finish soon" timeout period, it has no timer
    // because it is driven by real time (outside of the game state to avoid desyncs)
    set bj_finishSoonTimerDialog = CreateTimerDialog(null)

    // Set a trigger to fire when we receive a "finish soon" game event
    set trig = CreateTrigger()
    call TriggerRegisterGameEvent(trig, EVENT_GAME_TOURNAMENT_FINISH_SOON)
    call TriggerAddAction(trig, function MeleeTriggerTournamentFinishSoon)

    // Set a trigger to fire when we receive a "finish now" game event
    set trig = CreateTrigger()
    call TriggerRegisterGameEvent(trig, EVENT_GAME_TOURNAMENT_FINISH_NOW)
    call TriggerAddAction(trig, function MeleeTriggerTournamentFinishNow)

    // Set up each player's mortality code.
    set index = 0
    loop
        set indexPlayer = Player(index)

        // Make sure this player slot is playing.
        if (GetPlayerSlotState(indexPlayer) == PLAYER_SLOT_STATE_PLAYING) then
            set bj_meleeDefeated[index] = false
            set bj_meleeVictoried[index] = false

            // Create a timer and timer window in case the player is crippled.
            set bj_playerIsCrippled[index] = false
            set bj_playerIsExposed[index] = false
            set bj_crippledTimer[index] = CreateTimer()
            set bj_crippledTimerWindows[index] = CreateTimerDialog(bj_crippledTimer[index])
            call TimerDialogSetTitle(bj_crippledTimerWindows[index], MeleeGetCrippledTimerMessage(indexPlayer))

            // Set a trigger to fire whenever a building is cancelled for this player.
            set trig = CreateTrigger()
            call TriggerRegisterPlayerUnitEvent(trig, indexPlayer, EVENT_PLAYER_UNIT_CONSTRUCT_CANCEL, null)
            call TriggerAddAction(trig, function MeleeTriggerActionConstructCancel)

            // Set a trigger to fire whenever a unit dies for this player.
            set trig = CreateTrigger()
            call TriggerRegisterPlayerUnitEvent(trig, indexPlayer, EVENT_PLAYER_UNIT_DEATH, null)
            call TriggerAddAction(trig, function MeleeTriggerActionUnitDeath)

            // Set a trigger to fire whenever a unit begins construction for this player
            set trig = CreateTrigger()
            call TriggerRegisterPlayerUnitEvent(trig, indexPlayer, EVENT_PLAYER_UNIT_CONSTRUCT_START, null)
            call TriggerAddAction(trig, function MeleeTriggerActionUnitConstructionStart)

            // Set a trigger to fire whenever this player defeats-out
            set trig = CreateTrigger()
            call TriggerRegisterPlayerEvent(trig, indexPlayer, EVENT_PLAYER_DEFEAT)
            call TriggerAddAction(trig, function MeleeTriggerActionPlayerDefeated)

            // Set a trigger to fire whenever this player leaves
            set trig = CreateTrigger()
            call TriggerRegisterPlayerEvent(trig, indexPlayer, EVENT_PLAYER_LEAVE)
            call TriggerAddAction(trig, function MeleeTriggerActionPlayerLeft)

            // Set a trigger to fire whenever this player changes his/her alliances.
            set trig = CreateTrigger()
            call TriggerRegisterPlayerAllianceChange(trig, indexPlayer, ALLIANCE_PASSIVE)
            call TriggerRegisterPlayerStateEvent(trig, indexPlayer, PLAYER_STATE_ALLIED_VICTORY, EQUAL, 1)
            call TriggerAddAction(trig, function MeleeTriggerActionAllianceChange)
        else
            set bj_meleeDefeated[index] = true
            set bj_meleeVictoried[index] = false

            // Handle leave events for observers
            if (IsPlayerObserver(indexPlayer)) then
                // Set a trigger to fire whenever this player leaves
                set trig = CreateTrigger()
                call TriggerRegisterPlayerEvent(trig, indexPlayer, EVENT_PLAYER_LEAVE)
                call TriggerAddAction(trig, function MeleeTriggerActionPlayerLeft)
            endif
        endif

        set index = index + 1
        exitwhen index == bj_MAX_PLAYERS
    endloop

    // Test for victory / defeat at startup, in case the user has already won / lost.
    // Allow for a short time to pass first, so that the map can finish loading.
    call TimerStart(CreateTimer(), 2.0, false, function MeleeTriggerActionAllianceChange)
endfunction
Вроде много, но тут все просто, создается три триггера один следит за тем сколько построил зданий любой играющий игрок, второй следит сколько зданий погибло у любого играющего игрока, ну а третий следит за теми кто ливнул, чтобы их не преребирать, два прочих вспомогательные, следят за отмненой строительства и прочее.
Итого делаем вывод, чтобы узнать проиграл или нет игрок, нам нужно узнать сколько у него живых зданий, меньше 1 игрок проиграл. А реализовать это можно как угодно, триггерами следящими за смертями и прочим или таймером, который будет переодически считать все здания каждого игрока и давать поражение тем игрокам у кого не осталось ни одного здания...
ответ
Filius Dei:
я так и не понял почему ты не можешь просто сделать как улучшение что не так с улучшением как в обычном случае.
дело в описании, вот и не могу так сделать,если сделать через улучшение здания, то при наведении на иконку вплывает подсказка, та же подсказка что будет и у самого здания в списке построек у светлячка, тоесть если делать через улучшение (по идее этот же юнит должен быть и в списке построек (а он там есть) ту подсказку которую я хочу будет лишней. вот пример: Древо жизни превращается в древо мира, при этом все союзные юниты вблизи древа получают повышеную регенерацию здоровья. (а теперь представь что эта подсказка будет в списке построек у светлячка, вообще не то)
Решил проблему путем выбора древа когда истекает однократный таймер, также подумал и решил что наверно лучше делать через способности, а не исследования. Но у меня остался один вопрос, если этот тригер отвечающий за применения этих способностей будет использовать несколько игроков, я не знаю будет ли использоватся оно коректно или нет, также и с отдельным триггером Таймер. Вот что вышло в данный момент:

23

» WarCraft 3 / День/ночь

Похожие вопросы:

ответ
Denis55:
Sergey34:
Бля ,да че вы мучаетесь ночью в полночь делаем random integer между 1 и 100 и если равен integer 10 -то это 1 % если 1.2.3.4.5.6.7.8.9.10 - то 10% шанс превращения остальные вообще ничего не делаем - я бы за пару часов такое сделал но да только вряд ли мне согласятся заплатить))
так там при каждом превращение определяется время суток и если день то шанс на превращение 10% а если ночь то 50% т.е в любое время ночи если клацнуть превращение в воргена медведя то есть шанс (ночью) в 50 процентов обезуметь стать волком. Днём же этот шанс меньше.
Хотя правда я ничего не понял из того что ты написал и не уверен триггерное ли ты мне предлагаешь . Вот взгляни если не трудно ... (мне осталось шанс сделать а я не понимаю как :с) да и просто посмотри может вообще не правильно это. static2.keep4u.ru/2015/09/23/PT.png
Я тебе говорю триггер который срабатывает когда наступает полночь - random integer 1-100 когда какая нибудь из 10 цифр выпадает превращайся в волка - другие в медведя или напиши мне в личку там подробнее обьясню
и вообще - зачем непосредственно превращаться в медведя способностью?
Не проще подменять персонажей во время превращения? Я так делал - так удобнее
ответ
ssbbssc, не неси чушь. FrameDef (.fdf) файлы хранящие расположение частей интерфейса, их внешний вид и тд. Можно даже свою кнопку добавить и тд, только эффект ей без внешних длл не припишешь. Лежат в мпкью по пути UI\FrameDef\
ответ
Если у вас не анло-язычный jpng, а xgm'ский(5d), то это бесполезно. Всегда будет ночь, лучше попробуйте новую сборку jpng: Jass New Gen Pack - Rebuild 1.3 , надеюсь поможет.
ответ
С помощью клавиши L (по умолчанию).
Эта кнопка регулирует яркость, а если время суток, то через Файл->Параметры->Визуальные->Фикс. время суток(...).

23

» WarCraft 3 / Крашится карта

Похожие вопросы:

ответ
Крашлог и карту желательно, мб где то пропустили скобку?
ответ
приложи лучше .txt файл с крашем из папки /errors
ответ
biridius:
скинь хоть сам файл ошибки, из папки Errors (в папке с варом) там текстовые файлы, найди с нужной датой/временем
иначе ничего не понятно
Может расскажите лучше как я сам с этим текстовым файлом смогу решить эту проблему)?
+ я там сверху кусок скинул
Кароче - вот

x86 Registers

EAX=00000000 EBX=00000000 ECX=0EEA0020 EDX=0EEAE0A8 ESI=001985EC
EDI=00000000 EBP=0EE70088 ESP=0019842C EIP=00000000 FLG=00010202
CS =0023 DS =002B ES =002B SS =002B FS =0053 GS =002B

Stack Trace (Manual)

Address Frame Logical addr Module
00000000 0EE70088 0000:00000000 C:\Program Files (x86)\WarCraft III - 1.26\war3.exe

Stack Trace (Using DBGHELP.DLL)

6F45862F Game.dll GameMain+4517343 (0x00000000,0x00000000,0x00000000,0x00000000)

Loaded Modules

0x00400000 - 0x0047D000 C:\Program Files (x86)\WarCraft III - 1.26\war3.exe
0x15000000 - 0x15061000 C:\Program Files (x86)\WarCraft III - 1.26\Storm.dll
0x21100000 - 0x2115F000 C:\Program Files (x86)\WarCraft III - 1.26\mss32.dll
0x22600000 - 0x22616000 C:\Program Files (x86)\WarCraft III - 1.26\redist\miles\Mssfast.m3d
0x22700000 - 0x22717000 C:\Program Files (x86)\WarCraft III - 1.26\redist\miles\Mssdolby.m3d
0x22C00000 - 0x22C18000 C:\Program Files (x86)\WarCraft III - 1.26\redist\miles\Msseax2.m3d
0x24600000 - 0x24611000 C:\Program Files (x86)\WarCraft III - 1.26\redist\miles\Reverb3.flt
0x26F00000 - 0x26F2A000 C:\Program Files (x86)\WarCraft III - 1.26\redist\miles\Mp3dec.asi
0x60000000 - 0x6005D000 C:\Program Files (x86)\WarCraft III - 1.26\ijl15.dll
0x63EB0000 - 0x647DB000 C:\WINDOWS\System32\DriverStore\FileRepository\c0318486.inf_amd64_11ba0b4b7cc81d52\atiumdag.dll
0x647E0000 - 0x6487B000 C:\WINDOWS\WinSxS\x86_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.9348_none_d08c1480442bf1e1\MSVCR80.dll
0x64AC0000 - 0x64B4E000 C:\WINDOWS\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_5.82.16299.64_none_2c284a8117b59840\COMCTL32.dll
0x669D0000 - 0x66B4B000 C:\WINDOWS\System32\DriverStore\FileRepository\c0318486.inf_amd64_11ba0b4b7cc81d52\aticfx32.dll
0x66FB0000 - 0x66FD6000 C:\WINDOWS\SYSTEM32\cryptnet.dll
0x66FF0000 - 0x66FF6000 C:\WINDOWS\SYSTEM32\detoured.dll
0x67000000 - 0x67020000 C:\WINDOWS\SYSTEM32\amdihk32.dll
0x679C0000 - 0x679E7000 C:\WINDOWS\System32\DriverStore\FileRepository\c0318486.inf_amd64_11ba0b4b7cc81d52\atiu9pag.dll
0x67A80000 - 0x67A88000 C:\WINDOWS\SYSTEM32\AVRT.dll
0x67A90000 - 0x67AEB000 C:\WINDOWS\System32\MMDevApi.dll
0x67AF0000 - 0x67BE4000 C:\WINDOWS\SYSTEM32\AUDIOSES.DLL
0x67BF0000 - 0x67C12000 C:\WINDOWS\System32\DEVOBJ.dll
0x6C190000 - 0x6C1AE000 C:\WINDOWS\SYSTEM32\gpapi.dll
0x6C1B0000 - 0x6C1DF000 C:\WINDOWS\system32\rsaenh.dll
0x6C280000 - 0x6C30C000 C:\WINDOWS\SYSTEM32\CoreMessaging.dll
0x6C310000 - 0x6C544000 C:\WINDOWS\SYSTEM32\CoreUIComponents.dll
0x6C550000 - 0x6C5C7000 C:\WINDOWS\SYSTEM32\TextInputFramework.dll
0x6C5D0000 - 0x6C69E000 C:\Windows\System32\Windows.UI.dll
0x6E0D0000 - 0x6E19B000 C:\WINDOWS\SYSTEM32\wintypes.dll
0x6F000000 - 0x6FBB5000 C:\Program Files (x86)\WarCraft III - 1.26\Game.dll
0x70BB0000 - 0x70C66000 C:\WINDOWS\SYSTEM32\d3d8.dll
0x70DF0000 - 0x70DF8000 C:\WINDOWS\SYSTEM32\WINNSI.DLL
0x712B0000 - 0x7138F000 C:\WINDOWS\SYSTEM32\OPENGL32.dll
0x71C40000 - 0x71C65000 C:\WINDOWS\SYSTEM32\GLU32.dll
0x71C70000 - 0x71CF0000 C:\WINDOWS\SYSTEM32\DSOUND.DLL
0x72000000 - 0x72007000 C:\WINDOWS\SYSTEM32\d3d8thk.dll
0x726B0000 - 0x726D3000 C:\WINDOWS\system32\dwmapi.dll
0x72710000 - 0x72789000 C:\WINDOWS\system32\uxtheme.dll
0x72790000 - 0x72A54000 C:\WINDOWS\SYSTEM32\WININET.dll
0x72BE0000 - 0x72C35000 C:\WINDOWS\SYSTEM32\mswsock.dll
0x73980000 - 0x73AFA000 C:\WINDOWS\System32\PROPSYS.dll
0x73C50000 - 0x73C63000 C:\WINDOWS\SYSTEM32\CRYPTSP.dll
0x73CE0000 - 0x73D08000 C:\WINDOWS\SYSTEM32\ntmarta.dll
0x73D10000 - 0x73D34000 C:\WINDOWS\SYSTEM32\dbgcore.DLL
0x73D40000 - 0x73EC1000 C:\WINDOWS\SYSTEM32\dbghelp.dll
0x73F30000 - 0x73F49000 C:\WINDOWS\SYSTEM32\bcrypt.dll
0x73F50000 - 0x73F80000 C:\WINDOWS\SYSTEM32\IPHLPAPI.DLL
0x74240000 - 0x74263000 C:\WINDOWS\SYSTEM32\WINMMBASE.dll
0x742D0000 - 0x742F4000 C:\WINDOWS\SYSTEM32\WINMM.dll
0x74370000 - 0x74378000 C:\WINDOWS\SYSTEM32\WSOCK32.dll
0x743A0000 - 0x743A8000 C:\WINDOWS\SYSTEM32\VERSION.dll
0x743B0000 - 0x743BA000 C:\WINDOWS\System32\CRYPTBASE.dll
0x743C0000 - 0x743E0000 C:\WINDOWS\System32\SspiCli.dll
0x743E0000 - 0x74423000 C:\WINDOWS\System32\sechost.dll
0x74430000 - 0x74500000 C:\WINDOWS\System32\KERNEL32.DLL
0x74500000 - 0x74522000 C:\WINDOWS\System32\GDI32.dll
0x74530000 - 0x74575000 C:\WINDOWS\System32\SHLWAPI.dll
0x74580000 - 0x74587000 C:\WINDOWS\System32\NSI.dll
0x74590000 - 0x74767000 C:\WINDOWS\System32\KERNELBASE.dll
0x747D0000 - 0x748E7000 C:\WINDOWS\System32\ucrtbase.dll
0x748F0000 - 0x7496C000 C:\WINDOWS\System32\msvcp_win.dll
0x74970000 - 0x74AB4000 C:\WINDOWS\System32\MSCTF.dll
0x74AC0000 - 0x74ACE000 C:\WINDOWS\System32\kernel.appcore.dll
0x74AE0000 - 0x74B46000 C:\WINDOWS\System32\WS2_32.dll
0x74B50000 - 0x74CD2000 C:\WINDOWS\System32\CRYPT32.dll
0x74CE0000 - 0x74CEE000 C:\WINDOWS\System32\MSASN1.dll
0x74CF0000 - 0x74DAD000 C:\WINDOWS\System32\msvcrt.dll
0x74DB0000 - 0x74DF6000 C:\WINDOWS\System32\WINTRUST.dll
0x74E00000 - 0x74F5F000 C:\WINDOWS\System32\gdi32full.dll
0x74FC0000 - 0x762F3000 C:\WINDOWS\System32\SHELL32.dll
0x76360000 - 0x76457000 C:\WINDOWS\System32\ole32.dll
0x76460000 - 0x764B7000 C:\WINDOWS\System32\bcryptPrimitives.dll
0x764C0000 - 0x76538000 C:\WINDOWS\System32\ADVAPI32.dll
0x76540000 - 0x765C8000 C:\WINDOWS\System32\shcore.dll
0x765D0000 - 0x76816000 C:\WINDOWS\System32\combase.dll
0x76820000 - 0x768F4000 C:\WINDOWS\System32\comdlg32.dll
0x76900000 - 0x769BE000 C:\WINDOWS\System32\RPCRT4.dll
0x76F60000 - 0x76F74000 C:\WINDOWS\System32\profapi.dll
0x76FB0000 - 0x76FE8000 C:\WINDOWS\System32\cfgmgr32.dll
0x76FF0000 - 0x775B6000 C:\WINDOWS\System32\windows.storage.dll
0x775C0000 - 0x775D6000 C:\WINDOWS\System32\win32u.dll
0x775E0000 - 0x77755000 C:\WINDOWS\System32\USER32.dll
0x777F0000 - 0x77872000 C:\WINDOWS\System32\clbcatq.dll
0x77880000 - 0x778C5000 C:\WINDOWS\System32\powrprof.dll
0x778D0000 - 0x778F5000 C:\WINDOWS\System32\IMM32.dll
0x77900000 - 0x77993000 C:\WINDOWS\System32\OLEAUT32.dll
0x779A0000 - 0x77B2D000 C:\WINDOWS\SYSTEM32\ntdll.dll
дальше уже - Memory Dump
Так... Щас обнаружил что это у меня такая херня со всеми картами которые я сохранял в невгене... ВСЕ запутанее и странееее...
Проблема решилась переустановкой редактора повторным сохранением карты. Дело было в конфликте программы мусорщика ВСЕМ СПС.

23

» WarCraft 3 / Подсчет игроков

Похожие вопросы:

ответ
вот и получаем общий статы вссех героев
count_hero_created - Количество героев созданых на карте оно будет расти как будет создавать
heroes - массив героев
и можете спокойно получать из данных all_stats в любом месте куда хочеш

23

» WarCraft 3 / Редактор карты

Похожие вопросы:

ответ
Делать свой ИИ, либо в редакторе ИИ, либо писать самому.
Ещё можешь дописать своих юнитов в стандартные скрипты.
ответ
Хух, понеслось:
  1. Открыл карту, нажми сохранить (путь к карте не должен содержать русских букв) и сразу зайди в раздел "Extensions" - "Edit tileset".
  2. Выбрал нужные тайлсеты, нажми ок, карта сохранится (или сохрани сам) и тогда выходи из карты.
  3. Заходи в карту.
ответ
Открывается модель в программе "War3ModelEditor". Там нажимаешь Windows - Texture Manager. Жмёшь на пустое правой кнопкой мыши и импортируешь свою. Затем переходишь в Material Manager, там выбираешь каждый материал, ищешь там раскрывающийся список с текстурами, и выбираешь свою вместо той которая была там. Когда закроешь Материалы, увидишь свою модель с новой текстурой. Затем всё сохраняешь.
Открываешь редактор World Editor. Нажимаешь в Модулях - Менеджер импорта. Там импортируешь свою модель, и текстуру. Какой путь был в "War3ModelEditor" - Texture Manager, такой же путь должен писаться и здесь. Но убери "war3mapImported\" и перезагружай редактор после импортирования туда каждого файла! Написал на память. Вопросы?
ответ
Ну качаешь остюда JNGP, тут поправлено туча багов, спс Ханашиби.
Ставим по инструкции, запускаем ро, потом отрубаем USWE опции вроде там кастом тайслетов да кастом гуи триггеров, оно нафиг ненадо и нередко ломает совместимость с другими редакторами карт wc3.
Сжасс там есть, все должно изи работать.
Если нужен мемхак, скину код из своей карты с инструкциями что к чему.
Еще вопросы?

23

» WarCraft 3 / Локальный игрок

Похожие вопросы:

ответ
Создавать нельзя, на сколько я помню, а вот скрывать и отображать, а также менять текст и иконку - сколько угодно.
ответ
Во-первых, "хочется взять и в***ать учебником русского языка" ©
Во-вторых, перевожу на человеческий написанное топик стартером. Ему нужны локальные магазины, для каждого героя. Делает он что-то типа хироарены, и хочет что бы магазин со способностями мага был недоступен для воина. С другими героя соответственно.
В-третьх, это делается действительно через GetLocalPlayer(), другое дело что топик стартер не умеет этим пользоваться.
ответ
Решил проблему следующим путем: при несовпадении данных в Memory, заставляем читера выделить специального скрытого в тумане войны юнита, а в другом триггере по событии выделения пишем, что GetTriggerPlayer() - МХшник, и только потом кикаем его.
quq_CCCP:
Для бана нужна работа с хост ботом
Ты неправильно понял. Если люди по Гарене играют, то они должны знать, что игрок отключается по неуважительной причине, чтобы сразу его забанить и потом не париться с ним. Бан-то локальный в Гарене, не то что на хост-боте.
ответ
Можно сделать локально прозрачность, а если и управлять не нужно, то добавить москитов и будет не видимый юнит для других игроков

23

» WarCraft 3 / Jass Сложный скилл

Похожие вопросы:

ответ
Hanuman, для начала выучить джасс и прочитать статьи xgm.guru/p/wc3/articles
так же научится редактировать данные юнитов через hex редактор
потом делать как сказал ScopteRectuS

23

» WarCraft 3 / Function main

Похожие вопросы:

ответ
Итак. Комментарии на кириллице убраны, и всё заработало. Но потом я всё же переименовал файл скрипта)
ответ
Проблема возникает также при переносе вот этого вот в инициализацию триггера тест.
Но при этом если вместо строки вроде "12345" использовать, например, GetAbilityName('Aloc') - то все работает.
Это какой-то баг со строками?
Еще у меня почему-то происходит фантомный клик по центру карты в начале игры
Вобщем не стоит юзать имена функций напрямую в экзекуте и вообще таймеры лучше
ответ
Нашел ошибку:
В функции SuicideUnits (в самом низу) должно находиться строго 10 значений. У меня 9. Если приписать еще 0, то все работает.

23

» WarCraft 3 / War3ME ошибка

Похожие вопросы:

ответ
Гммм... В первый раз о подобном слышу. Как "лечить" я не знаю, но как вариант можно скачать нужную версию игры и взять нужный архив вместо повреждённого оттуда. Примерно таким образом я избавился от проблем со своей версией, связанных с отсутствием музыки и стандартных реплик, а также отказом воспринимать большУю часть импортированных звуков.
ответ
~8gabriel8:
PrincePhoenix, там геосеты есть, но материалов мало. Я пробовал сделать дополнительный материал для геосетов, чтобы тот в нужных анимациях исчезал, но там в материале текстура доспехов и тимколора. Почему-то в нужной анимации пропадает текстура доспехов, но щит мигает тимколором. Мне разбираться сейчас некогда, срочно возникли дела, может быть он скинет сюда модель, чтобы посмотрели.
P. S. А в игре всё нормально, только в w3me мигало почему-то)

23

» WarCraft 3 / Компания и герой...

Похожие вопросы:

ответ
Артас Менетил:
Ну нет. Не всегда удобно ковыряться в чужих картах. Объясню на пальцах.
Есть категория действий "Буфер игры". Вот что в ней есть:
  1. Create game cache - создать кэш с указанным именем. Если в двух разных картах создать кэши с одними и теми же именами, то кэш будет общим - можно переносить информацию с одной карты на другую.
  2. Save unit/integer/real/boolean/string - сохраняет переменную (если юнит, то все его параметры) в кэш.
  3. Save cache. После записи чего-ибо в кэш его следует сохранить
  4. Load unit - загружает юнита из кэша и создаёт его на карте.
Чтобы загрузить из кэша переменную, это следует делать при помощи функций этого типа.
ответ
SomeFire, У него 3 круга
вернее 6
ответ
Буфер игры - создать буфер с именем ...
Буфер игры - сохранить юнит как ...
Буфер игры - сохранить последний созданный буфер

Буфер игры - создать буфер с именем ...
Буфер игры - восстановить юнит из ... буфера

23

» WarCraft 3 / Плохо работает способность

Похожие вопросы:

ответ
Думал использовать чисто для экономии времени. По хорошему конечно надо самому написать системки, да все руки не доходят.
Может тогда подскажите, есть ли готовые более менее пригодные для использования. Сам всегда делал через торнадо, разве это уже не модно?
ответ
bifurcated, вот сделал наработку что то в роде того что ты хочеш только желательно доработать... но с этим сам почитай статьи
ах забыл рекомендую делать подобные скилы на основе "Канал"

23

» WarCraft 3 / Триггерная голда

Похожие вопросы:

ответ
Yulia, создаёшь юнита без модели и наносишь ему урон от нужного игрока. Соответственно кол-во золота меняешь в параметрах юнита.
ответ
создай проект, распиши что есть, что нужно сделать, пару скринов, свободные вакансии

23

» WarCraft 3 / Меню кампаний...

Похожие вопросы:

ответ
Меняешь расширение с .w3n на .mpq (хоть простым переименованием) и открываешь архив любым MPQ-едитором (лично я пользовался этим xgm.guru/p/wc3/ladiks-mpq). После экспортируешь оттуда нужную тебе карту.
ответ
Варкрафтитель:
Absolute, Я знаю... Но он же... Уже изменен...
Вот что я тебе скажу. Иногда проще начать с нуля, чем разгребать ошибки. Просто создай новую кампанию , перекопируй старые триггеры. Всяко быстрее выйдет, чем несколько дней разбираться, да и качественнее.
ответ
~8gabriel8:
Это зависит от камер и анимаций. Сначала воспроизводится анимация Birth, которая и представляет приближение, потом Stand, там везде свои камеры. Посмотри в war3me у модели экрана, как там сделано. Подробную статью о работе с камерами в этих моделях не встречал.
Вариант ApEJI про вращение модели вместо кучи камер тоже норм. Типа в Birth вращение сделать. Но у меня, например, не такие высокие навыки в анимировании, чтобы сразу много объектов правильно сдвигать, мне предпочтительнее камер наделать.